<!DOCTYPE stack PUBLIC "-//Apple, Inc.//DTD stack V 2.0//EN" "" >
<stack>
<name>in.0d6</name>
<id>-1</id>
<cardCount>12</cardCount>
<cardID>65616</cardID>
<listID>2982</listID>
<cantModify><false /></cantModify>
<cantDelete><false /></cantDelete>
<cantAbort><false /></cantAbort>
<cardSize>
<width>512</width>
<height>432</height>
</cardSize>
<script>on openstack---- HyperStation interacts very heavily with Hypercard and relies-- on the existence of the following global containers. If you write-- your own script, just cut and paste these two lines. HyperStation-- will do the rest.--global globalATPData, globalResponseDataglobal globalReceiveData, myEntityNameglobal globalSKTData, globalNBPDatacreate menu "Collect"put "Run,Lookup,UnNamed,Do Pass" ¬into menu "Collect" with menuMessages "run,lookup,unnamed,doPass"put "-,Zone Lists,Zone Cards,Summaries" ¬after menu "Collect" with menuMessages "empty,go card "Zone List",go first card of bkgnd "zoneInformation",go first card of bkgnd "Summaries""create menu "Summaries"put "Verify,Verify All,-,Total Card,Summarize All,-,Clear Card,Clear Zone Cards,Clear Summaries,Clear Stack," ¬into menu "Summaries" with menuMessages "verify,verifyAll,empty,totalcard,summarizeStack,empty,clearCard,clearZoneCards,clearSummaries,clearStack"put empty into globalResponseDataput empty into globalAppleTalkData-- Before we can become an entity on the network, we must first-- open up access to the network. ATOPEN performs this fucntion-- and relies on the container "globalappleTalkData". DO NOT-- use Hyperstation unless your stack defines this global.---- Since ATOpen is not given a parameter, it will open both a client-- and a server side allowing us to both issue requests and respond-- to requests from this node.--atpopenif the result is empty then---- if ATOpen was successful, we can go ahead and register our name-- with the network. If no name is specified (as is the case here),-- then the name selected in the chooser will be used.--nbpopennbpregisterName "Big Brother"if the result is empty then-- You're connected and ready to go. Remember, you'll need-- to do a lookup using the lookup button before you can talk-- to any servers.--end ifend ifend openstackon closestackput empty into GlobalResponseDataput empty into GlobalAppleTalkData--hide background button "memo"NBPCloseATPClosereset menubarend closestackon MinMenusdisable menuItem "Lookup" of menu "Collect"disable menuItem "UnNamed" of menu "Collect"disable menuItem "Do Pass" of menu "Collect"disable menuItem "Verify" of menu "Summaries"disable menuItem "Clear Card" of menu "Summaries"disable menuItem "Total Card" of menu "Summaries"end MinMenuson maxMenusenable menuItem "Lookup" of menu "Collect"enable menuItem "UnNamed" of menu "Collect"enable menuItem "Do Pass" of menu "Collect"enable menuItem "Verify" of menu "Summaries"enable menuItem "Clear Card" of menu "Summaries"enable menuItem "Total Card" of menu "Summaries"end maxMenus-- on idle-- atpreceive "HandleRequest"-- end idle-- on HandleRequest-- global globalResponseData-- ---- -- A client has issued a request for some data. Acting as a well-- -- behaved server, we fill the response data with some information-- -- Since this method was called from the ATReceive xcmd, it will-- -- return there upon completion causing the response to be sent-- -- out "magically". If the response container is blank, the-- -- server will "autorespond". Note that responses are limited to-- -- to 4624 characters. This is a fundamental limitation of the-- -- AppleTalk ATP layer. If you send more than 4624 characters,-- -- the response will be truncated for you.-- ---- visual effect wipe right-- go card "in box"-- put card field "response" into globalResponseData-- end HandleRequest-- on HandleResponse-- global globalReceiveData-- ---- -- A server is returning a response to a previously queued request.-- -- Note that in order to handle a response correctly, you need to-- -- specify this or some other method in your ATRequest call.-- -- The response data has been placed in the globalReceiveData-- -- container for you. All you have to do is look at it.-- ---- if globalReceiveData is not empty then-- push card-- set lockscreen to true-- go card "in box"-- get the number of lines in card field "messages"-- add 1 to it-- put globalReceiveData into line it of card field "messages"-- pop card-- set lockscreen to false-- end if-- end HandleResponseon okay---- The method handles the default server response (It is not needed-- by clients). Iif you didn't specify a response in GlobalResponseData,-- this is what you'll get instead.--end okayon run-- this routine runs the stackget the number of this bkgndif it is 1 thenput the number of this card into StartCardelsego first card of bkgnd "ZoneInformation"put the number of the first card of bkgnd "ZoneInformation" into StartCardend ifrepeat while (the suspended or the shiftKey is "up")makeCopyrepeat with i = StartCard to the number of the last card of bkgnd "ZoneInformation"if (not(the suspended) and the shiftKey is "down") thenexit runend ifgo to card isend "lookup" to this cardif (not(the suspended) and the shiftKey is "down") thenexit runend ifsend "unnamed" to this cardadd 1 to fld passesif (not(the suspended) and the shiftKey is "down") thenexit runend ifsend "totalcard" to this cardend repeatput the number of the first card of bkgnd "ZoneInformation" into StartCardend repeatend runon verifyAllpush this cardgo first card of bkgnd "ZoneInformation"repeat for (the number of cards in bkgnd "ZoneInformation") - 1verifygo nextend repeatpop cardend verifyAllon summarizeStackpush this cardgo first card of bkgnd "Summaries"repeat for (the number of cards in bkgnd "Summaries")totalCardgo nextend repeatpop cardend summarizeStackon clearStackbeep 2answer "Erase all data from every card in this stack?" ¬with "Cancel" or "OK"if it = "Cancel" thenexit clearStackend ifpush cardlock screenrepeat with i = 1 to the number of cards in bkgnd "ZoneInformation"set cursor to busygo card i of bkgnd "ZoneInformation"clearCardend repeatrepeat with i = 1 to the number of cards in bkgnd "Summaries"set cursor to busygo card i of bkgnd "Summaries"clearCardend repeatpop cardunlock screen with dissolveend clearStackon clearZoneCardsbeep 2answer "Erase all data from every zone card in this stack?" ¬with "Cancel" or "OK"if it = "Cancel" thenexit clearZoneCardsend iflock screenpush cardrepeat with i = 1 to the number of cards in bkgnd "ZoneInformation"set cursor to busygo card i of bkgnd "ZoneInformation"clearCardend repeatpop cardunlock screen with dissolveend clearZoneCardson clearSummariesbeep 2answer "Erase all data from every zone card in this stack?" ¬with "Cancel" or "OK"if it = "Cancel" thenexit clearSummariesend iflock screenpush cardrepeat with i = 1 to the number of cards in bkgnd "Summaries"set cursor to busygo card i of bkgnd "Summaries"clearCardend repeatpop cardunlock screen with dissolveend clearSummarieson getNavpalette Navigotorend getNavon makeCopyif isFile("Backup of Running Metrics") theneraseFile("Backup of Running Metrics")end ifsave stack as "Backup of Running Metrics"end makeCopy</script>